home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Magazine / Online / MagPLIP / source / smakefile < prev    next >
Makefile  |  1998-04-01  |  6KB  |  202 lines

  1. #!sc:c/smake
  2. #
  3. #####################################################################
  4. #
  5. #  $VER: smakefile 6.5 (01.04.98)
  6. #  (C) Copyright 1995-1996 Marius Gröger
  7. #      All Rights Reserved
  8. #
  9. #       (linplip.device added by Stéphane Zermatten)
  10. #
  11. #####################################################################
  12.  
  13. #####################################################################
  14. #
  15. # following stuff is your configuration
  16. #
  17. LIBS        = LIB LIB:amiga.lib LIB lib:sc.lib LIB lib:debug.lib
  18. CINCLUDES   = INCDIR="include:" INCDIR="netinclude:"
  19. ASMINCLUDES = INCDIR="INCLUDEASM:" $(CINCLUDES)
  20. CPUSUFFIX   = 020 # 000 010 020 030 040 060 ANY
  21. CPUCCOPT    = CPU=68$(CPUSUFFIX)
  22. CP          = C:Copy
  23. MV          = C:Rename
  24. RM          = C:Delete >NIL:
  25. LD          = sc:c/slink
  26. CC          = sc:c/sc
  27. AS          = sc:c/sc
  28. MAKE        = sc:c/smake
  29. BUMPREV     = bumprev
  30. SETREV      = SetRev
  31. PROTECT     = protect
  32. BUILD_AMINET= /s/build-aminet
  33. ECHO        = Echo
  34. PROTOCOL    = LIN               # LIN or MAG
  35. PROTOCOL_LC = lin               # lin or mag (lowercase. stupid, I know... SZ)
  36. SUFFIX      = $(PRSUFFIX)$(CPUSUFFIX)
  37. #
  38. #####################################################################
  39.  
  40. #####################################################################
  41. #
  42. # installation drawer and names of device
  43. #
  44. INSTALL_DIR = AmiTCP:/Special/DEVS/Networks
  45. DEVICE_DIR  = /DEVS/Networks
  46. BASENAME    = magplip
  47. RELNAME     = magPLIP
  48. NAME        = $(PROTOCOL_LC)plip.device
  49. VERSION     = 38
  50. IDS         = aminet.ids
  51.  
  52. #
  53. #####################################################################
  54.  
  55.  
  56. #####################################################################
  57. #
  58. # assembler/compiler flags
  59. #
  60. # this applies to normal and optimized compilation:
  61. #
  62. STDFLAGS    = $(CINCLUDES) NOMULTIPLEINCLUDES ERRREXX COMMENTNEST NOSTKCHK NOCHKABORT\
  63.           SMALLCODE SMALLDATA VERBOSE NOICONS STRICT ANSI DEFINE $(PROTOCOL)PLIP=1
  64. #
  65. # this applies only to normal compilation:
  66. #
  67. NORMCFLAGS  = $(STDFLAGS)
  68. #
  69. # this applies only to optimized compilation:
  70. #
  71. OPTCFLAGS   = $(STDFLAGS) $(CPUCCOPT) PARAMETERS=REGISTERS OPT OPTTIME OPTINLINE\
  72.           OPTSCHEDULE STRINGMERGE STRUCTUREEQUIVALENCE
  73. #
  74. # this applies to assembler compilation
  75. #
  76. AFLAGS      = $(ASMINCLUDES) VERBOSE DEFINE $(PROTOCOL)PLIP=1
  77. #
  78. #####################################################################
  79.  
  80. #####################################################################
  81. #
  82. # linkage flags
  83. #
  84. LDFLAGS     = NOICONS SC  $(LIBS) TO
  85. OPTLDFLAGS  = NOICONS SC SD ND $(LIBS) TO
  86. #
  87. #####################################################################
  88.  
  89. #####################################################################
  90. #
  91. # the object files
  92. #
  93. NORMOBJ=$(PROTOCOL)rt.o device.no server.no track.no $(PROTOCOL)port.o crc16.o
  94. OPTOBJ=$(PROTOCOL)rt.o $(PROTOCOL)device.opt$(CPUSUFFIX) $(PROTOCOL)server.opt$(CPUSUFFIX)\
  95.        $(PROTOCOL)track.opt$(CPUSUFFIX) $(PROTOCOL)port.o crc16.o
  96. #
  97. #####################################################################
  98.  
  99. #####################################################################
  100. #
  101. # rules
  102. #
  103. # compile a file normally
  104. #
  105. .c.no:
  106.    $(CC) $(NORMCFLAGS) OBJECTNAME t:$@ $*.c
  107.    @$(CP) t:$@ $@
  108.    @$(RM) t:$@
  109. #
  110. # compile a file optimizing
  111. #
  112. .c.opt$(SUFFIX):
  113.    $(CC) $(OPTCFLAGS) OBJECTNAME t:$@ $*.c
  114.    @$(CP) t:$@ $@
  115.    @$(RM) t:$@
  116. #
  117. # assemble a file
  118. #
  119. .asm.o:
  120.    $(AS) $(AFLAGS) OBJECTNAME $@ $*.asm
  121. #
  122. #####################################################################
  123.  
  124. #####################################################################
  125. #
  126. # targets
  127. #
  128. help:
  129.    -@Echo "Usage:"
  130.    -@Echo "To make an unoptimized version"
  131.    -@Echo "   $(MAKE) all"
  132.    -@Echo "To make an optimized version"
  133.    -@Echo "   $(MAKE) all_opt"
  134.    -@Echo "To install an unoptimized version"
  135.    -@Echo "   $(MAKE) install"
  136.    -@Echo "To install an optimized version"
  137.    -@Echo "   $(MAKE) install"
  138.    -@Echo "To increment the revision"
  139.    -@Echo "   $(MAKE) newrev"
  140.    -@Echo "To remove all intermediate files for unoptimized the version"
  141.    -@Echo "   $(MAKE) clean_norm"
  142.    -@Echo "To remove all intermediate files for optimized the version"
  143.    -@Echo "   $(MAKE) clean_opt"
  144.    -@Echo "To %remove all intermediate files"
  145.    -@Echo "   %$(MAKE) clean"
  146.    -@Echo "To create a distribution"
  147.    -@Echo "   $(MAKE) release"
  148.  
  149. all: $(DEVICE_DIR)/$(NAME)
  150. all_opt: $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX)
  151.  
  152. install: all
  153.    $(CP) $(DEVICE_DIR)/$(NAME) $(INSTALL_DIR)/$(NAME)
  154.  
  155. install_opt: all_opt
  156.    $(CP) $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX) $(INSTALL_DIR)/$(NAME)
  157.  
  158. newrev:
  159.    $(BUMPREV) $(VERSION) magplip
  160.    $(BUMPREV) $(VERSION) linplip
  161.  
  162. clean_norm:
  163.    -@$(RM) *.o
  164.    -@$(RM) *.no
  165.  
  166. clean_opt:
  167.    -@$(RM) *.o
  168.    -@$(RM) *.opt*
  169.  
  170. clean: clean_norm clean_opt
  171.  
  172. release:
  173.    $(MAKE) CPUSUFFIX=000 PROTOCOL=MAG PROTOCOL_LC=mag all_opt
  174.    $(MAKE) CPUSUFFIX=020 PROTOCOL=MAG PROTOCOL_LC=mag all_opt
  175.    $(MAKE) CPUSUFFIX=040 PROTOCOL=MAG PROTOCOL_LC=mag all_opt
  176.    $(MAKE) CPUSUFFIX=000 PROTOCOL=LIN PROTOCOL_LC=lin all_opt
  177.    $(MAKE) CPUSUFFIX=020 PROTOCOL=LIN PROTOCOL_LC=lin all_opt
  178.    $(MAKE) CPUSUFFIX=040 PROTOCOL=LIN PROTOCOL_LC=lin all_opt
  179.    $(BUILD_AMINET) "$(RELNAME)" "$(BASENAME)" "$(DEVICE_DIR)/$(NAME).$(CPUSUFFIX)" "/ReadMe" "//$(BASENAME)" "$(IDS)" CLEAN
  180.  
  181. $(DEVICE_DIR)/$(NAME).$(CPUSUFFIX): $(OPTOBJ)
  182.    $(LD) $(OPTOBJ) $(OPTLDFLAGS) $@
  183.  
  184. $(DEVICE_DIR)/$(NAME): $(NORMOBJ)
  185.    $(LD) $(NORMOBJ) $(LDFLAGS) $@
  186. #
  187. #####################################################################
  188.  
  189. #####################################################################
  190. #
  191. # various dependencies
  192. #
  193. $(PROTOCOL)rt.o: rt.asm magplip.i $(PROTOCOL)plip_rev.i
  194. crc16.o: crc16.asm
  195. $(PROTOCOL)port.o: $(PROTOCOL)port.asm magplip.i
  196. $(PROTOCOL)device.opt$(SUFFIX) device.no: device.c magplip.h
  197. $(PROTOCOL)server.opt$(SUFFIX) server.no: server.c magplip.h
  198. $(PROTOCOL)track.opt$(SUFFIX) track.no: track.c magplip.h
  199. #
  200. #####################################################################
  201.  
  202.